#include <stdio.h>

int main()
{
    float f = 8.25;
    unsigned int *p = (unsigned int *)&f;
    printf("0x%08X\n",*p); //打印结果为0x41040000 与手动计算实数8.25在内存中的float表示一致，计算步骤放结尾

    return 0;

    
}
/*
实数8.25在内存中的float表示
第一步：实数8.25转换为二进制数：整数8的二进制为1000；小数0.25的二进制为01（小数部分不断乘2，
每次乘2的结果整数部分作为依次的二进制位数字，直到乘2后的结果小数点后面为0结束，即0.25 * 2 = 0.5 
取整数部分0，小数点后不为0 继续乘2 0.5 *2 =1.0 取整数部分1为二进制第二位数字，小数点后已为0 结束运算）
最终得实数8.25的二进制数为：1000.01
第二步：将实数的二进制数用科学计数法表示：1.00001*(2^3) 3即为原始指数
第三步：计算偏移后的指数 float偏移量为127，最终指数为：127+3 = 130，即指数部分二进制为：10000010

则最终实数8.25在内存中float表示为 0(符号位1位) 10000010(指数部分8位) 
00001000000000000000000（尾数部分23位 科学家计数法小数点后的数字依次排列 不足补0）
*/